Memory may be provided in or for use by computers or other electronic devices including, but not limited to, portable memory devices, solid state drives, personal digital assistants, tablets, music players, cameras, phones, wireless devices, displays, chip sets, set top boxes, gaming systems, vehicles, and appliances. There are many different types of memory including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), flash memory, and resistance variable memory, among others.
During memory operation, data may be transferred to and from a memory device in accordance with commands and addresses sent by a memory controller. A variety of techniques may be employed to improve the performance of memory devices. Two of those techniques are data masking and data bus inversion.
Data masking (DM) may be used advantageously during data writes to memories where data is accessed in groups. So, for example, a DRAM write may typically access a predetermined amount of memory in one write command (e.g. 8 bytes). This predetermined amount of memory may be related to an amount of memory prefetched by a particular memory device. However, in some examples, a write command may actually affect a lesser amount of memory (e.g. 6 bytes). Without data masking, all 8 bytes may need to be read, 6 of those bytes modified, and then all 8 written back again. With data masking, the memory device itself may not write the unchanged entries. Data masking may be implemented, for example, by suppressing a column select signal for columns that are not changed by a particular write command.
To implement data masking, a data mask input may be provided on memory devices. The data mask input may receive a signal that indicates to the memory device that data should be masked. In this manner, the masking may be selectively applied to data as needed. Data masking may be particularly advantageous in systems that access smaller amounts of data at a time, such as, but not limited to, systems utilizing ARM processors.
Data bus inversion (DBI) may be used to advantageously reduce power consumption and/or decrease simultaneous switching noise in memory devices. In data bus inversion, the data carried by a particular bus may be inverted—for example, data that would typically be represented as a logical ‘high’ may be represented as a logical ‘low’, and vice versa. A data bus inversion signal may be provided to a memory device to indicate when data carried by a bus has been inverted, so that the memory device may invert the data prior to storage, for example.